Referring to FIG. 1, a conventional storage area network (SAN) 10 includes one or more hosts (e.g., a host 12) connected to one or more storage arrays (e.g., a storage array 16) by a channel (e.g., a fibre channel switch 14). The host 12 accesses the storage array 16 by sending input/output (IO) transactions such as read commands to read data from the storage array or as write commands to write data to the storage array. When the host 12 sends data to be written to the storage array 16, the storage array generally sends an acknowledgment message to the host that the data was successfully written to the storage array or sends an error message that an error has occurred. When the host 12 sends a request to read data from the storage array 16, the storage array responds by providing the data to the host.
In general, the exchange of information between the host 12 and the storage area 16 follows, for example, a Small Computer System Interface (SCSI) protocol, which is a communication protocol. Hosts and storage arrays in the SAN 10 may be fabricated by different vendors. In one example, one vendor may fabricate the host 12 and another vendor may fabricate the storage array 16. Since the SCSI protocol is complex, different vendors generally implement the SCSI protocol differently from one another so that every combination of host-vendor/storage array-vendor is unique in terms of the exact information transferred between the host 12 and the storage array 16. Therefore, whenever a vendor develops a new SAN product that interacts with the host 12 and the storage array 16, the vendor, in order to have a viable and marketable product, invests a considerable amount of effort in validating that the new SAN product is compatible with the other SAN products produced by the other vendors in the SAN.